﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;
using Brain.Rendering;

namespace Brain
{
    public interface IRenderManager2D : IEngineManager, IEndDrawable, IDrawable
    {
        GraphicsDevice GraphicsDevice { get; }

        List<Action> BeforeRenderActions { get; set; }
        List<Action> AfterRenderActions { get; set; }

        void StartDraw(GameScreen gs);

        void FinishDraw(GameScreen gs);

        void SubmitSprite(ISprite sprite);
        void RemoveSprite(ISprite sprite);

        void DrawEverything(Matrix? m, bool rightStereoFrame);

        int Editor_Count();
        ISprite Editor_GetSprite(int index);

        IDrawer2D Drawer { get; }

        /*Vector2? CustomResFactor { get; }
        Matrix? CustomResMatrix { get; }
        Viewport CustomResViewport { get; }
        Viewport DefaultResViewport { get; }
        void UseCustomResolution(int lastResWidth, int lastResHeight, int newResWidth, int newResHeight, bool maintainRatio);*/
    }
}
